package cn.iocoder.yudao.module.contract.controller.admin.orderContract.vo;

import lombok.*;
import java.util.*;
import io.swagger.v3.oas.annotations.media.Schema;
import cn.iocoder.yudao.framework.common.pojo.PageParam;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;

import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;

@Schema(description = "管理后台 - 订单合同分页 Request VO")
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
public class OrderContractPageReqVO extends PageParam {

    @Schema(description = "类型编码")
    private String contractTypeCode;

    @Schema(description = "凭证日期")
    private String[] audat;

    @Schema(description = "销售凭证")
    private String vbeln;

    @Schema(description = "销售凭证搜索类型")
    private String vbelnType;

    @Schema(description = "销售凭证区间开始")
    private String vbelnStart;

    @Schema(description = "销售凭证区间结束")
    private String vbelnEnd;

    @Schema(description = "销售凭证类型/销售凭证类型")
    private String pzinfo;

    @Schema(description = "销售组织")
    private String vkorg;

    @Schema(description = "合同管控类型解释")
    private String zzhtgklxms;

    @Schema(description = "合同管控类型")
    private String zzhtgklx;

    @Schema(description = "付款条件解释")
    private String ztermt;

    @Schema(description = "付款条件")
    private String zterm;

    @Schema(description = "付款条件搜索类型")
    private String ztermtType;

    @Schema(description = "公司代码/公司名称")
    private String buinfo;

    @Schema(description = "售达方/售达方描述")
    private String kuinfo;

    @Schema(description = "售达方")
    private String kunnr;

    @Schema(description = "售达方搜索类型")
    private String kunnrType;

    @Schema(description = "销售部门/部门描述")
    private String vkinfo;

    @Schema(description = "销售组/组描述")
    private String vkginfo;

    @Schema(description = "业务员/业务员名称")
    private String ywyinfo;

    @Schema(description = "释放推送状态")
    private String isPushRelease;

    @Schema(description = "合同状态", example = "1")
    private String status;

    @Schema(description = "合同状态", example = "1")
    private String orderStatus;

    @Schema(description = "合同打印模板", example = "1")
    private String htdymb;

    @Schema(description = "列表类型", example = "1")
    private String listType;

    @Schema(description = "排除信用证支付")
    private Boolean excludeXyz;

    @Schema(description = "是否打印")
    private String isPrint;

    @Schema(description = "回收总状态")
    private String recycleStatus;


    @Schema(description = "创建时间")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private LocalDateTime[] createTime;

    /**
     * 订单冻结状态 0 释放（未冻结） 1 冻结
     */
    public Integer orderFreezeStatus;


    @Schema(description = "排序字段")
    private String prop;
    @Schema(description = "排序类型")
    private String order;
}